package com.vecspace.dayu.code.template.httphandler;

import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;

import com.vecspace.dayu.code.template.pojo.TemplatePageLayout;
import com.vecspace.dayu.code.template.service.TemplatePageLayoutService;
import com.vecspace.dicttable.CodeItem;
import com.vecspace.security.model.LoginContext;
import com.vecspace.web.servlet.model.BaseController;
import com.vecspace.web.servlet.model.HController;
import com.vecspace.web.servlet.model.Param;
import com.vecspace.web.servlet.model.Path;

@HController("dayucode_templatePageLayoutHandler")
public class TemplatePageLayoutHandler extends BaseController{
	/** 根据ID查询 页面布局类型 
	 * @param id   主键值
	 * @return TemplatePageLayout
	 * @throws Exception
	 * @author wanghua
	 */
	@Path("getTemplatePageLayout")
	public TemplatePageLayout getTemplatePageLayout(@Param("id")Long id) throws Exception{
		return templatePageLayoutService.getTemplatePageLayout(id);
	}
	
	@Path("getTemplatePageLayouts")
	public List<TemplatePageLayout> getTemplatePageLayouts(@Param("terminalType")String terminalType) throws Exception {
		return templatePageLayoutService.getTemplatePageLayouts(terminalType);
	}

	/**获取pagelayoutId下已经定义的代码类型
	 * 
	 * @param pagelayoutId
	 * @return
	 * @throws Exception 
	 * @author wanghua
	 * @reviewer  
	 * @createTime 2021年9月20日 下午5:45:44
	 */
	@Path("getCodeTypes")
	public List<CodeItem> getCodeTypes(@Param("pagelayoutId")Long pagelayoutId) throws Exception{
		 
		return templatePageLayoutService.getCodeTypes(pagelayoutId, false);
	}

	/** 插入或修改 页面布局类型 ，item中的所有属性都会更新到数据库中（包括属性值为null的，也会将null更新到数据库，覆盖之前的值）。
	 * @param item	要保存的对象
	 * @return void
	 * @throws Exception
	 * @author wanghua
	 */
	@Path("saveTemplatePageLayout")
	public TemplatePageLayout saveTemplatePageLayout(@Param("item")TemplatePageLayout item) throws Exception{
		String loginUserId = LoginContext.getLoginId();
		return templatePageLayoutService.saveTemplatePageLayout(item, loginUserId);
	}
	
	/** 根据ID删除 页面布局类型 
	 * @param id	主键值
	 * @return void
	 * @throws Exception
	 * @author wanghua
	 */
	@Path("deleteTemplatePageLayout")
	public void deleteTemplatePageLayout(@Param("id")Long id) throws Exception{		
		templatePageLayoutService.deleteTemplatePageLayout(id);
	}
	
	/** property **/
	@Autowired
	private TemplatePageLayoutService templatePageLayoutService;
}
